package com.transaction.demo.trade.vo.req;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.Date;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 描述：支付订单表
 * 作者：马庆智
 * 日期：2023/04/27 17:22:10
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("支付订单表请求updateVo")
public class TradePaymentOrderUpdateReqVo implements Serializable {

    @ApiModelProperty("id")
    //@NotBlank(message = "idid不能为空")
    private String id;

    @ApiModelProperty("版本号")
    //@NotBlank(message = "version版本号不能为空")
    private int version;

    @ApiModelProperty("创建时间")
    //@NotBlank(message = "createTime创建时间不能为空")
    private Date createTime;

    @ApiModelProperty("修改者")
    //@NotBlank(message = "editor修改者不能为空")
    private String editor;

    @ApiModelProperty("创建者")
    //@NotBlank(message = "creater创建者不能为空")
    private String creater;

    @ApiModelProperty("最后修改时间")
    //@NotBlank(message = "editTime最后修改时间不能为空")
    private Date editTime;

    @ApiModelProperty("状态(参考枚举:orderstatusenum)")
    //@NotBlank(message = "status状态(参考枚举:orderstatusenum)不能为空")
    private String status;

    @ApiModelProperty("商品名称")
    //@NotBlank(message = "productName商品名称不能为空")
    private String productName;

    @ApiModelProperty("商户订单号")
    //@NotBlank(message = "merchantOrderNo商户订单号不能为空")
    private String merchantOrderNo;

    @ApiModelProperty("订单金额")
    //@NotBlank(message = "orderAmount订单金额不能为空")
    private String orderAmount;

    @ApiModelProperty("订单来源")
    //@NotBlank(message = "orderFrom订单来源不能为空")
    private String orderFrom;

    @ApiModelProperty("商家名称")
    //@NotBlank(message = "merchantName商家名称不能为空")
    private String merchantName;

    @ApiModelProperty("商户编号")
    //@NotBlank(message = "merchantNo商户编号不能为空")
    private String merchantNo;

    @ApiModelProperty("下单时间")
    //@NotBlank(message = "orderTime下单时间不能为空")
    private Date orderTime;

    @ApiModelProperty("下单日期")
    //@NotBlank(message = "orderDate下单日期不能为空")
    private String orderDate;

    @ApiModelProperty("下单ip(客户端ip,在网关页面获取)")
    //@NotBlank(message = "orderIp下单ip(客户端ip,在网关页面获取)不能为空")
    private String orderIp;

    @ApiModelProperty("从哪个页面链接过来的(可用于防诈骗)")
    //@NotBlank(message = "orderRefererUrl从哪个页面链接过来的(可用于防诈骗)不能为空")
    private String orderRefererUrl;

    @ApiModelProperty("页面回调通知url")
    //@NotBlank(message = "returnUrl页面回调通知url不能为空")
    private String returnUrl;

    @ApiModelProperty("后台异步通知url")
    //@NotBlank(message = "notifyUrl后台异步通知url不能为空")
    private String notifyUrl;

    @ApiModelProperty("订单撤销原因")
    //@NotBlank(message = "cancelReason订单撤销原因不能为空")
    private String cancelReason;

    @ApiModelProperty("订单有效期(单位分钟)")
    //@NotBlank(message = "orderPeriod订单有效期(单位分钟)不能为空")
    private short orderPeriod;

    @ApiModelProperty("到期时间")
    //@NotBlank(message = "expireTime到期时间不能为空")
    private Date expireTime;

    @ApiModelProperty("支付方式编号")
    //@NotBlank(message = "payWayCode支付方式编号不能为空")
    private String payWayCode;

    @ApiModelProperty("支付方式名称")
    //@NotBlank(message = "payWayName支付方式名称不能为空")
    private String payWayName;

    @ApiModelProperty("支付备注")
    //@NotBlank(message = "remark支付备注不能为空")
    private String remark;

    @ApiModelProperty("交易业务类型  ：消费、充值等")
    //@NotBlank(message = "trxType交易业务类型  ：消费、充值等不能为空")
    private String trxType;

    @ApiModelProperty("支付流水号")
    //@NotBlank(message = "trxNo支付流水号不能为空")
    private String trxNo;

    @ApiModelProperty("支付类型编号")
    //@NotBlank(message = "payTypeCode支付类型编号不能为空")
    private String payTypeCode;

    @ApiModelProperty("支付类型名称")
    //@NotBlank(message = "payTypeName支付类型名称不能为空")
    private String payTypeName;

    @ApiModelProperty("资金流入类型")
    //@NotBlank(message = "fundIntoType资金流入类型不能为空")
    private String fundIntoType;

    @ApiModelProperty("是否退款(100:是,101:否,默认值为:101)")
    //@NotBlank(message = "isRefund是否退款(100:是,101:否,默认值为:101)不能为空")
    private String isRefund;

    @ApiModelProperty("退款次数(默认值为:0)")
    //@NotBlank(message = "refundTimes退款次数(默认值为:0)不能为空")
    private int refundTimes;

    @ApiModelProperty("成功退款总金额")
    //@NotBlank(message = "successRefundAmount成功退款总金额不能为空")
    private String successRefundAmount;

}